Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Raw • View renderedDownload


lang/README.ja.md 290f7e09d437502dfd03f66e3e656ebd94d3cec9 (290f7e09) Text, 11.88 KB

Tc9d1d9# Reticulum MeshChatX

[Tff7b72English README](Te6edf3../README.md) | [Tff7b72Deutsch](Te6edf3README.de.md) | [Tff7b72Italiano](Te6edf3README.it.md) | [Tff7b72Русский](Te6edf3README.ru.md) | [Tff7b72中文](Te6edf3README.zh.md)

Liam Cottle 氏による Reticulum MeshChat を大幅に改修・機能拡張したフォークです。

本プロジェクトはオリジナルの Reticulum MeshChat とは独立しており、提携関係にありません。

Tff7b72- ウェブサイト: [Tff7b72meshchatx.com](Te6edf3https://meshchatx.com)
Tff7b72- ソースコード: [Tff7b72git.quad4.io/RNS-Things/MeshChatX](Te6edf3https://git.quad4.io/RNS-Things/MeshChatX)
Tff7b72- 公式ミラー: [Tff7b72github.com/Sudo-Ivan/MeshChatX](Te6edf3https://github.com/Sudo-Ivan/MeshChatX) — 現時点では Windows / macOS ビルドにも使用。
Tff7b72- リリース: [Tff7b72git.quad4.io/RNS-Things/MeshChatX/releases](Te6edf3https://git.quad4.io/RNS-Things/MeshChatX/releases)
Tff7b72- 変更履歴: [Ta5d6ff`CHANGELOG.md`](../CHANGELOG.md)
Tff7b72- TODO: [Tff7b72Boards](Te6edf3https://git.quad4.io/RNS-Things/MeshChatX/projects)

Tc9d1d9## Reticulum MeshChat からの主な変更

Tff7b72- LXST を使用
Tff7b72- Peewee ORM を生 SQL に置き換え
Tff7b72- Axios をネイティブ Ta5d6ff`fetch` に置き換え
Tff7b72- 最新の Electron
Tff7b72- Web サーバーと同梱フロントエンドを含む Ta5d6ff`.whl` によりデプロイの選択肢を拡張
Tff7b72- i18n
Tff7b72- 依存関係管理に PNPM と Poetry

Tff7b72> [!WARNING]
Tff7b72> MeshChatX は旧バージョンの Reticulum MeshChat とのデータ互換性を保証しません。マイグレーションやテスト前にデータをバックアップしてください。

Tff7b72> [!WARNING]
Tff7b72> レガシーシステムはまだ完全にはサポートされていません。現在の最低要件: Python `>=3.11`、Node `>=24`。

Tc9d1d9## 必要条件

Tff7b72- Python Ta5d6ff`>=3.11`(Ta5d6ff`pyproject.toml` より)
Tff7b72- Node.js Ta5d6ff`>=24`(Ta5d6ff`package.json` より)
Tff7b72- pnpm Ta5d6ff`10.32.1`(Ta5d6ff`package.json` より)
Tff7b72- Poetry(`Taskfile.yml` および CI ワークフローで使用)

Ta5d6ff```Ta5d6ffbash
task install
task lint:all
task test:all
task build:all
Ta5d6ff```

Tc9d1d9## インストール方法

環境とパッケージ形式に合わせて選んでください。

| 方法 | フロントエンド含む | アーキテクチャ | 最適な用途 |
| -------------------------- | ------------------ | ------------------------------------- | ---------------------------------------- |
| Docker イメージ | はい | Ta5d6ff`linux/amd64`, Ta5d6ff`linux/arm64` | Linux サーバーでの迅速なセットアップ |
| Python wheel (Ta5d6ff`.whl`) | はい | Python がサポートする全アーキテクチャ | Node ビルド不要のヘッドレス/Web サーバー |
| Linux AppImage | はい | Ta5d6ff`x64`, Ta5d6ff`arm64` | ポータブルデスクトップ |
| Debian パッケージ (Ta5d6ff`.deb`) | はい | Ta5d6ff`x64`, Ta5d6ff`arm64` | Debian/Ubuntu |
| RPM パッケージ (Ta5d6ff`.rpm`) | はい | CI 依存 | Fedora/RHEL/openSUSE |
| ソースから | ローカルビルド | ホストアーキテクチャ | 開発・カスタムビルド |

備考:

Tff7b72- リリースワークフローは Linux Ta5d6ff`x64` および Ta5d6ff`arm64` の AppImage + DEB を明示的にビルドします。
Tff7b72- RPM も試行され、成功時にアップロードされます。

Tc9d1d9## クイックスタート: Docker

Ta5d6ff```Ta5d6ffbash
docker compose up -d
Ta5d6ff```

デフォルトの compose ファイル:

Tff7b72- ホスト Ta5d6ff`127.0.0.1:8000` -> コンテナポート Ta5d6ff`8000`
Tff7b72- Ta5d6ff`./meshchat-config` -> Ta5d6ff`/config`(永続化)

権限エラーが発生した場合:

Ta5d6ff```Ta5d6ffbash
sudo chown -R T79c0ff1000:1000 ./meshchat-config
Ta5d6ff```

Tc9d1d9## リリースアーティファクトからのインストール

Tc9d1d9### 1) Linux AppImage (x64/arm64)

Tff7b721. リリースから Ta5d6ff`ReticulumMeshChatX-v<バージョン>-linux-<アーキテクチャ>.AppImage` をダウンロード。
Tff7b722. 実行権限を付与して起動:

Ta5d6ff```Ta5d6ffbash
chmod +x ./ReticulumMeshChatX-v*-linux-*.AppImage
./ReticulumMeshChatX-v*-linux-*.AppImage
Ta5d6ff```

Tc9d1d9### 2) Debian/Ubuntu `.deb` (x64/arm64)

Tff7b721. Ta5d6ff`ReticulumMeshChatX-v<バージョン>-linux-<アーキテクチャ>.deb` をダウンロード。
Tff7b722. インストール:

Ta5d6ff```Ta5d6ffbash
sudo apt install ./ReticulumMeshChatX-v*-linux-*.deb
Ta5d6ff```

Tc9d1d9### 3) RPM ベースのシステム

Tff7b721. リリースに Ta5d6ff`ReticulumMeshChatX-v<バージョン>-linux-<アーキテクチャ>.rpm` がある場合はダウンロード。
Tff7b722. インストール:

Ta5d6ff```Ta5d6ffbash
sudo rpm -Uvh ./ReticulumMeshChatX-v*-linux-*.rpm
Ta5d6ff```

Tc9d1d9### 4) Python wheel (`.whl`)

リリースの wheel にはビルド済みの Web アセットが含まれます。

Ta5d6ff```Ta5d6ffbash
pip install ./reticulum_meshchatx-*-py3-none-any.whl
meshchatx --headless
Ta5d6ff```

Ta5d6ff`pipx` もサポート:

Ta5d6ff```Ta5d6ffbash
pipx install ./reticulum_meshchatx-*-py3-none-any.whl
Ta5d6ff```

Tc9d1d9## ソースからの実行(Web サーバーモード)

開発時やローカルのカスタムビルド向け。

Ta5d6ff```Ta5d6ffbash
git clone https://git.quad4.io/RNS-Things/MeshChatX.git
Tffa657cd MeshChatX
corepack Tffa657enable
pnpm install
pip install poetry
poetry install
pnpm run build-frontend
poetry run python -m meshchatx.meshchat --headless --host T79c0ff127.0.0.1
Ta5d6ff```

Tc9d1d9## サンドボックスで実行(Linux)

ネイティブの Ta5d6ff`meshchatx`(エイリアス: Ta5d6ff`meshchat`)をファイルシステムをより隔離した状態で動かすには、Reticulum と Web UI 向けの通常のネットワークアクセスを保ちつつ **Firejail** または **Bubblewrap**(Ta5d6ff`bwrap`)を使えます。詳しい例(pip/pipx、Poetry、USB シリアルの注意)は次を参照:

Tff7b72- [Ta5d6ff`docs/meshchatx_linux_sandbox.md`](../docs/meshchatx_linux_sandbox.md)

同梱または同期された Ta5d6ff`meshchatx-docs` から配信される場合、アプリ内の **ドキュメント**(MeshChatX ドキュメント)一覧にも同じページが表示されます。

Tc9d1d9## ソースからのデスクトップパッケージビルド

スクリプトは Ta5d6ff`package.json` と Ta5d6ff`Taskfile.yml` に定義されています。

Tc9d1d9### Linux x64 AppImage + DEB

Ta5d6ff```Ta5d6ffbash
pnpm run dist:linux-x64
Ta5d6ff```

Tc9d1d9### Linux arm64 AppImage + DEB

Ta5d6ff```Ta5d6ffbash
pnpm run dist:linux-arm64
Ta5d6ff```

Tc9d1d9### RPM

Ta5d6ff```Ta5d6ffbash
pnpm run dist:rpm
Ta5d6ff```

Task 経由:

Ta5d6ff```Ta5d6ffbash
task dist:fe:rpm
Ta5d6ff```

Tc9d1d9## アーキテクチャサポート

Tff7b72- Docker: Ta5d6ff`amd64`, Ta5d6ff`arm64`
Tff7b72- Linux AppImage: Ta5d6ff`x64`, Ta5d6ff`arm64`
Tff7b72- Linux DEB: Ta5d6ff`x64`, Ta5d6ff`arm64`
Tff7b72- Windows: Ta5d6ff`x64`, Ta5d6ff`arm64`(ビルドスクリプトあり)
Tff7b72- macOS: ローカルビルド向けにビルドスクリプトあり(`arm64`, Ta5d6ff`universal`)
Tff7b72- Android: リポジトリにプロジェクトと CI ワークフローあり

Tc9d1d9## Android

Tff7b72- [Ta5d6ff`docs/meshchatx_on_android_with_termux.md`](../docs/meshchatx_on_android_with_termux.md)
Tff7b72- [Ta5d6ff`android/README.md`](../android/README.md)

Tc9d1d9## 設定

| 引数 | 環境変数 | デフォルト | 説明 |
| -------------------------- | ---------------------------------------- | ----------- | -------------------------------------------------------------------------------------- |
| Ta5d6ff`--host` | Ta5d6ff`MESHCHAT_HOST` | Ta5d6ff`127.0.0.1` | Web サーバーのバインドアドレス |
| Ta5d6ff`--port` | Ta5d6ff`MESHCHAT_PORT` | Ta5d6ff`8000` | Web サーバーポート |
| Ta5d6ff`--no-https` | Ta5d6ff`MESHCHAT_NO_HTTPS` | Ta5d6ff`false` | HTTPS を無効化 |
| Ta5d6ff`--ssl-cert` / Ta5d6ff`--ssl-key` | Ta5d6ff`MESHCHAT_SSL_CERT` / Ta5d6ff`MESHCHAT_SSL_KEY` | (なし) | PEM 証明書と鍵のパス。両方指定。アイデンティティの Ta5d6ff`ssl/` 下の自動生成証明書を上書き。 |
| Ta5d6ff`--rns-log-level` | Ta5d6ff`MESHCHAT_RNS_LOG_LEVEL` | (なし) | Reticulum(RNS)のログレベル(上記の名前または数値)。CLI は環境変数より優先。 |
| Ta5d6ff`--headless` | Ta5d6ff`MESHCHAT_HEADLESS` | Ta5d6ff`false` | ブラウザを自動で開かない |
| Ta5d6ff`--auth` | Ta5d6ff`MESHCHAT_AUTH` | Ta5d6ff`false` | 基本認証を有効化 |
| Ta5d6ff`--storage-dir` | Ta5d6ff`MESHCHAT_STORAGE_DIR` | Ta5d6ff`./storage` | データディレクトリ |
| Ta5d6ff`--public-dir` | Ta5d6ff`MESHCHAT_PUBLIC_DIR` | 自動/同梱 | フロントエンドファイルディレクトリ(同梱資産のないインストール向け) |

Tc9d1d9## ブランチ

| ブランチ | 目的 |
| -------- | ---------------------------------------------------------- |
| Ta5d6ff`master` | 安定版リリース。本番向けのコードのみ。 |
| Ta5d6ff`dev` | 活発な開発。不安定または不完全な変更を含む場合があります。 |

Tc9d1d9## 開発

Ta5d6ff`Taskfile.yml` のよく使うタスク:

Ta5d6ff```Ta5d6ffbash
task install
task lint:all
task test:all
task build:all
Ta5d6ff```

Ta5d6ff`Makefile` のショートカット:

| コマンド | 説明 |
| -------------- | --------------------------------------- |
| Ta5d6ff`make install` | pnpm と poetry の依存関係をインストール |
| Ta5d6ff`make run` | poetry 経由で MeshChatX を実行 |
| Ta5d6ff`make build` | フロントエンドをビルド |
| Ta5d6ff`make lint` | eslint と ruff を実行 |
| Ta5d6ff`make test` | フロントエンドとバックエンドのテスト |
| Ta5d6ff`make clean` | ビルド成果物と node_modules を削除 |

Tc9d1d9## バージョン管理

このリポジトリの現在のバージョンは Ta5d6ff`4.4.0` です。

Tff7b72- JavaScript / Electron のバージョンソースは Ta5d6ff`package.json`。
Tff7b72- Ta5d6ff`meshchatx/src/version.py` は次で Ta5d6ff`package.json` と同期します:

Ta5d6ff```Ta5d6ffbash
pnpm run version:sync
Ta5d6ff```

リリースの一貫性のため、必要に応じて (Ta5d6ff`package.json`、Ta5d6ff`pyproject.toml`、Ta5d6ff`meshchatx/__init__.py`) のバージョンを揃えてください。

Tc9d1d9## セキュリティ

Tff7b72- [Ta5d6ff`SECURITY.md`](../SECURITY.md)
Tff7b72- アプリ実行時の組み込み整合性チェックとデフォルトの HTTPS/WSS
Tff7b72- Ta5d6ff`.gitea/workflows/` の CI スキャンワークフロー

Tc9d1d9## 言語の追加

ロケールは自動検出されます。新しい言語には JSON ファイル 1 つで足ります:

Tff7b721. Ta5d6ff`en.json` から空のテンプレートを生成:

Ta5d6ff```Ta5d6ffbash
python scripts/generate_locale_template.py
Ta5d6ff```

全キーを空文字にした Ta5d6ff`locales.json` が書き出されます。

Tff7b722. 名前を変更してロケールディレクトリへ移動:

Ta5d6ff```Ta5d6ffbash
mv locales.json meshchatx/src/frontend/locales/xx.json
Ta5d6ff```

Tff7b723. ファイル先頭の Ta5d6ff`_languageName` にその言語の母語名を設定(例: Ta5d6ff`"Espanol"`, Ta5d6ff`"Francais"`)。言語選択に表示されます。

Tff7b724. 残りの値をすべて翻訳。

Tff7b725. キーの整合性を確認: Ta5d6ff`pnpm test -- tests/frontend/i18n.test.js --run`

他のコード変更は不要です。アプリ・言語選択・テストはビルド時に Ta5d6ff`meshchatx/src/frontend/locales/` からロケールを読み込みます。

Tc9d1d9## クレジット

Tff7b72- [Tff7b72Liam Cottle](Te6edf3https://github.com/liamcottle) - オリジナル Reticulum MeshChat
Tff7b72- [Tff7b72RFnexus](Te6edf3https://github.com/RFnexus) - Micron パーサー(JavaScript)
Tff7b72- [Tff7b72markqvist](Te6edf3https://github.com/markqvist) - Reticulum, LXMF, LXST


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────